package comandos;

import model.Conversacion;
import model.Usuario;
import protocol.MensajeComando;
import client.ClienteSession;

public class MeAgreganConversacion implements ComandoCliente
{
	private MensajeComando estadoOperacion;
	private static final Object lock = new Object();
	private static Conversacion conversacion;
	private static Usuario usuarioCreador ;
	
	public void ejecutar (ClienteSession cliente, boolean invocadoPorServidor)
	{
		if(invocadoPorServidor){
			try {
				synchronized (lock) {
					conversacion = (Conversacion) cliente.getInput().readObject();
					usuarioCreador = (Usuario) cliente.getInput().readObject();
					lock.notify();
				}
			}catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	public MensajeComando getEstadoOperacion() {
		return estadoOperacion;
	}

	public void setEstadoOperacion(MensajeComando estadoOperacion) {
		this.estadoOperacion = estadoOperacion;
	}

	public static Conversacion getConversacion() throws InterruptedException {
		synchronized (lock) {
			lock.wait();
			return conversacion;
		}
	}
	
	public static void setConversacion(Conversacion conversacion) {
		MeAgreganConversacion.conversacion = conversacion;
	}

	public static Usuario getUsuarioCreador() {
		return usuarioCreador;
	}

	public static void setUsuarioCreador(Usuario usuarioCreador) {
		MeAgreganConversacion.usuarioCreador = usuarioCreador;
	}
}
